package com.zjdiepu.www.service.hzicbc;

import com.diepu.www.client.hzicbc.proxy.request.applyCredit.ApplyCreditRequest;
import com.diepu.www.client.hzicbc.proxy.request.applyDivi.ApplyDiviRequest;
import com.diepu.www.client.hzicbc.proxy.request.applyDiviGeneral.ApplyDiviGeneralRequest;
import com.diepu.www.client.hzicbc.proxy.request.applyStatus.ApplyStatusRequest;
import com.diepu.www.client.hzicbc.proxy.request.creditCardApply.CreditCardApplyRequest;
import com.diepu.www.client.hzicbc.proxy.request.creditStatus.CreditStatusRequest;
import com.diepu.www.client.hzicbc.proxy.request.fileDownload.FileDownloadRequest;
import com.diepu.www.client.hzicbc.proxy.request.multimediaupload.MultimediauploadRequest;
import com.diepu.www.client.hzicbc.proxy.request.qryMargin.QryMarginRequest;
import com.diepu.www.client.hzicbc.proxy.response.applyStatus.ApplyStatusInfo;
import com.diepu.www.client.hzicbc.proxy.response.creditStatus.CreditStatusInfo;
import com.diepu.www.client.hzicbc.proxy.response.qryMargin.AccountInfo;
import com.icbc.api.core.ApiResponse;

/**
 * 杭州工行接口服务
 * @author xiongxiaotun
 * appId 合作方
 *
 */
public interface IHzicbcService {
	
	/**
	 * 1.	合作机构征信查询请求接口
	 * com.icbc.bcis.apply.applycredit
	 */
	ApiResponse applyCredit(ApplyCreditRequest request, String appId)throws Exception;
	
	/**
	 * 申请分期接口(包括退回后的继续申请)	
	 * com.icbc.bcis.apply.applydivi
	 */
	boolean applyDivi(ApplyDiviRequest request, String appId);
	/**
	 * 查询申请进度
	 * com.icbc.bcis.apply.applystatus
	 */
	ApplyStatusInfo applyDiviStatus(ApplyStatusRequest request, String appId);
	/**
	 * 文件清单信息下载接口
	 * com.icbc.bcis.apply.filedownload
	 * @param remoteFileName 远程文件名
	 * @param localPath 本地路径
	 */
	boolean fileDownload(FileDownloadRequest request, String remoteFileName, String localPath, String appId);
	
	/**
	 * 通用业务申请接口
	 * com.icbc.bcis.apply.applydivigeneral
	 * 1.1 一手车业务申请
	 */
	boolean applyDiviGeneral(ApplyDiviGeneralRequest request, String appId);
	/**
	 * 专项卡申请信息上送接口
	 * com.icbc.bcis.apply.creditcardapply
	 */
	ApiResponse creditCardApply(CreditCardApplyRequest request, String appId);
	/**
	 * 风险准备金余额查询接口
	 * com.icbc.bcis.query.qrymargin
	 */
	AccountInfo qryMargin(QryMarginRequest request, String appId);
	/**
	 * 查询专项卡开卡进度
	 * com.icbc.bcis.apply.applycreditstatus
	 */
	CreditStatusInfo applyCreditStatus(CreditStatusRequest request, String appId);
	/**
	 * 通用业务多媒体资料补充接口
	 * com.icbc.bcis.apply.multimediaupload
	 */
	boolean multiMediaUpload(MultimediauploadRequest request, String appId);

//	boolean openCardBackReason(PublicResponse backNoticeResponse, String appId);

}
